L2 정규화

AI
qwen-3-235b-a22b-instruct-2507
작성자
익명
작성일
2025.09.11
조회수
1
버전
v1

L2 정규화

개요

L2 정규화(2 Regularization), 또는 리지 정규화(Ridge Regularization), 중치 감소(Weight Decay)는 머신러닝 및 딥러닝 모델에서 과적합(Overfitting)을 방지하기 위해 사용되는 대표적인 정규화 기법 중 하나입니다. 이 방법은 모델의 가중치에 제약을 가하여 복잡성을 줄이고, 학습 데이터에 지나치게 최적화되는 것을 막아 일반화 성능을 향상시킵니다.

L2 정규화는 손실 함수에 가중치의 제곱합을 추가함으로써, 큰 가중치 값이 패널티를 받도록 설계되어 있습니다. 이는 모델이 모든 특성에 너무 의존하지 않고, 보다 균형 잡힌 예측을 하도록 유도합니다.


L2 정규화의 수학적 정의

L2 정규화는 다음과 같은 형태로 손실 함수에 추가됩니다:

$$ \mathcal{L}_{\text{total}} = \mathcal{L}_{\text{original}} + \lambda \sum_{i=1}^{n} w_i^2 $$

여기서: - $\mathcal{L}_{\text{original}}$: 원래의 손실 함수 (예: 평균 제곱 오차, 교차 엔트로피 등) - $w_i$: 모델의 $i$번째 가중치 - $\lambda$: 정규화 강도를 조절하는 하이퍼파라미터 ($\lambda \geq 0$) - $\sum w_i^2$: 가중치 벡터의 L2 노름의 제곱

이 식에서 $\lambda$ 값이 클수록 정규화의 영향이 커져 가중치가 작아지도록 강제하며, $\lambda = 0$일 경우 정규화가 전혀 적용되지 않습니다.


L2 정규화의 작동 원리

1. 가중치 감소 효과

L2 정규화는 손실 함수에 가중치의 제곱합을 더함으로써, 학습 과정 중 경사하강법(Gradient Descent)이 큰 가중치를 감소시키도록 유도합니다. 예를 들어, 가중치 $w$에 대한 손실의 기울기는 다음과 같이 변합니다:

$$ \frac{\partial \mathcal{L}_{\text{total}}}{\partial w} = \frac{\partial \mathcal{L}_{\text{original}}}{\partial w} + 2\lambda w $$

따라서, 가중치 업데이트 식은:

$$ w \leftarrow w - \eta \left( \frac{\partial \mathcal{L}_{\text{original}}}{\partial w} + 2\lambda w \right) $$

이 과정에서 $2\lambda w$ 항이 항상 가중치를 0에 가깝게 끌어당기므로, 가중치 감소(Weight Decay)라는 이름이 붙었습니다.

2. 과적합 방지

복잡한 모델은 학습 데이터의 노이즈까지 학습할 수 있어 테스트 데이터에서 성능이 떨어지는 과적합 현상이 발생합니다. L2 정규화는 가중치의 크기를 제한함으로써 모델의 복잡성을 감소시키고, 특정 입력 특성에 지나치게 의존하지 않도록 합니다. 결과적으로 모델의 일반화 능력(Generalization)이 향상됩니다.


L2 정규화 vs L1 정규화

특성 L2 정규화 L1 정규
패널티 형태 $\lambda \sum w_i^2$ $\lambda \sum |w_i|$
가중치 분포 모든 가중치가 작아짐 (희소하지 않음) 일부 가중치가 정확히 0이 됨
희소성 없음 있음 (특성 선택 가능)
수치적 안정성 높음 상대적으로 낮음
주로 사용되는 경우 다중공선성 문제 해결, 일반적인 과적합 방지 특성 선택이 필요한 경우
  • L1 정규화는 특정 가중치를 0으로 만들어 희소성(Sparsity)을 유도하므로, 중요한 특성만 선택하는 데 유리합니다.
  • L2 정규화는 모든 가중치를 작게 유지하지만 0으로 만들지는 않으므로, 모든 특성이 어느 정도 영향을 미치도록 합니다.

딥러닝에서의 L2 정규화

딥러닝 모델에서도 L2 정규화는 널리 사용됩니다. 특히, 완전 연결층(Fully Connected Layer)이나 컨볼루션층(Convolutional Layer)의 가중치에 적용됩니다. 프레임워크 예시:

PyTorch 예시

import torch.nn as nn
import torch.optim as optim

model = nn.Linear(10, 1)
optimizer = optim.SGD(model.parameters(), lr=0.01, weight_decay=1e-4)  # L2 정규화 적용

TensorFlow/Keras 예시

from tensorflow.keras import regularizers, layers

model = tf.keras.Sequential([
    layers.Dense(64, activation='relu', kernel_regularizer=regularizers.l2(0.01)),
    layers.Dense(10, activation='softmax')
])

weight_decay 또는 l2(λ) 인자를 통해 쉽게 적용할 수 있습니다.


장단점

장점

  • 과적합을 효과적으로 줄일 수 있음
  • 수치적으로 안정적이며, 대부분의 경우 수렴이 잘 됨
  • 다중공선성 문제 완화 (특히 선형 회귀에서 유용)

단점

  • 희소한 모델을 만들지 않음 → 특성 선택 불가
  • 모든 특성에 작은 영향을 주므로, 해석이 어려울 수 있음
  • $\lambda$ 값을 적절히 조정해야 함 (과소정규화/과도정규화 문제)

관련 개념 및 활용

  • 리지 회귀(Ridge Regression): 선형 회귀에 L2 정규화를 적용한 형태
  • 엘라스틱 넷(Elastic Net): L1과 L2 정규화를 동시에 사용하는 기법
  • 배치 정규화(Batch Normalization)와의 조합: 모델 안정성 향상

참고 자료


L2 정규화는 머신러닝 모델의 핵심 기술 중 하나로, 모델의 일반화 능력을 향상시키는 데 매우 효과적입니다. 적절한 하이퍼파라미터 튜닝과 함께 사용하면, 다양한 문제 영역에서 견고한 성능을 보장할 수 있습니다.

AI 생성 콘텐츠 안내

이 문서는 AI 모델(qwen-3-235b-a22b-instruct-2507)에 의해 생성된 콘텐츠입니다.

주의사항: AI가 생성한 내용은 부정확하거나 편향된 정보를 포함할 수 있습니다. 중요한 결정을 내리기 전에 반드시 신뢰할 수 있는 출처를 통해 정보를 확인하시기 바랍니다.

이 AI 생성 콘텐츠가 도움이 되었나요?